# 使用官方的 Go 镜像作为构建环境
FROM golang:1.20 AS builder

# 设置工作目录
WORKDIR /app

# 将本地代码复制到工作目录
COPY . .

#在 Dockerfile 中设置 GOPROXY 环境变量，使用国内的 Go 模块代理（如七牛云或阿里云）。
ENV GOPROXY=https://goproxy.cn,direct

# 构建 Go 程序
RUN go mod download && go build -o /app/hello-world

# 使用一个轻量级的镜像作为运行环境
FROM alpine:latest

# 将构建好的二进制文件从构建环境复制到运行环境
COPY --from=builder /app/hello-world /app/hello-world

# 设置工作目录
WORKDIR /app

# 暴露容器的 8080 端口
EXPOSE 8080

# 启动程序
CMD ["./hello-world"]